package com.ato.EnumTest;

/**
 * @author wangjing
 * @create 2021--11--03--19:34
 */
public class EnumKeyword {
    public static void main(String[] args) {
        // 直接获取
        System.out.println(RestCode.SUCCESS);
//        values()方法 获取类中的所有对象
        System.out.println("***** values()方法 *******");
        RestCode[] values = RestCode.values();
        for (int i = 0; i < values.length; i++) {
            System.out.println(values[i]);
        }
//      valueOf(String objName)  获取Enum类里的某一个对象  没有则报错 IllegalArgumentException
        System.out.println("***** valueOf(String objName) *******");
        System.out.println(RestCode.valueOf("SUCCESS"));

//        get方法
        System.out.println("***** getXXX() *******");
        System.out.println(RestCode.SUCCESS.getCode());
        RestCode suc = RestCode.SUCCESS;
        suc.gloal();
    }
}

interface MyInterface {
    void gloal();
}

enum RestCode implements MyInterface {
    SUCCESS("ok", 200) {
        @Override
        public void gloal() {
            System.out.println("给类里的每一个对象去实现接口");

        }
    },
    //   多个枚举类 用 , 隔开最后一个使用 ;

    FAIL("fail", 400) {
        @Override
        public void gloal() {
            System.out.println("给类里的每一个对象去实现接口");

        }
    },
    ERROR("error", 500) {
        @Override
        public void gloal() {
            System.out.println("给类里的每一个对象去实现接口");
        }
    };
    private String desc;
    private int code;

    RestCode(String desc, int code) {
        this.desc = desc;
        this.code = code;
    }

    public String getDesc() {
        return desc;
    }

    //  可以自定义toString()
    @Override
    public String toString() {
        return "RestCode{" +
                "desc='" + desc + '\'' +
                ", code=" + code +
                '}';
    }

    public int getCode() {
        return code;
    }
}
